Ja, gut, wir können starten. Dann schönen guten Tag, hallo zur Vorlesung. Rechner, ich
tue die Woche. Ich habe, was mich noch umgetrieben hat, da war doch noch mal die Frage, wie groß
ist so eine Branch History Tabelle. Ich habe irgendwo, da bilde ich mir einen, hätte ich
mal gelesen, dass in einer Intel Architektur 512 solcher Speicheradressen abgelegt werden.
Ich habe wirklich nichts mehr gefunden. Ich habe fast eine Stunde lang herumgesucht. Das
einzige, was ich gefunden habe, jetzt noch, ja, das war noch mit die beste Äußerung,
ist das hier. The Branch Target Buffer in Sandy Bridge is bigger than a halem. According
to unofficial rumors, also gemäß nichtoffizielle Gerüchte, dass ich irgendwo mal eine konkrete
Größe rausbekommen hätte, ist mir jetzt nicht gelungen. Aber es sind also wohl so zwischen
512 und 4.096 Einträge, vielleicht maximal. Ja, was ich auch noch mal nachgeguckt habe,
ist, da hat noch jemand mal gefragt, wo die, wie mit diesen NOP Operations, also die können
sie schon durchaus doch vom Compiler erzeugt werden. Und allerdings wäre eigentlich schlecht,
also wahrscheinlich dann, wenn er feststellt, es ist ein Hesser, den auch irgendwie die
Hardware nicht auflösen kann, dann führt er da NOP ein, weil ansonsten macht es eigentlich
keinen Sinn. Also NOP bedeutet, also wenn ich die Pipeline in der Abarbeitung eben nicht
anhalten will, ich will aber vermeiden, dass sich Hessers auswirken. Dann baue ich diese
NOP Operations ein und NOP Operations heißt eben, dann fließt die Information, der Befehl
einfach durch die Pipeline durch und es werden, dieser NOP Befehl und es werden keine Veränderungen
an den Caches, an den Registern und ansonstigen Einträgen vorgenommen. Ja, gut, so, was steht
heute auf dem Programm? Achso, und bei den Delayed Branches, da bin ich mir also ziemlich
sicher, diese Delayed Branches werden in den Intel Architekturen nicht benutzt. Ich habe
mal die letzte Weisheit in all diesen Fragen, wobei es die, schau mal, eine Frage ist,
wie weise das tatsächlich ist, dieses Architektures Optimization Reference Manual von Intel 64
und diesen Intel Architekturen 32, also den älteren Architekturen, das ist also 670 Seiten
stark dieses Dokument und geht schon manchmal ins Detail rein. Also, da werden ein paar
Geheimnisse dann doch mal preisgegeben. Die 76 Seiten habe ich jetzt nicht durchgelesen,
aber ich habe einfach mal mir suchen lassen nach Delayed Branch, ich habe nichts gefunden.
Also, ich vermute mal, dass die wirklich da nicht drin sind. Also, was ich gelesen habe
in älteren RISC Prozessoren und bei digitalen Signalprozessoren, da werden häufig solche
Delayed Branch Konzepte verwendet. Und, naja, das hatte ich auch noch in Nachtrag, es ist
tatsächlich schwierig, drei Slots zu füllen, in meinem Beispiel war das noch hübsch, das
war entsprechend konstruiert, sondern zum meisten haben die dann auch nur einen Delay
Slot und ein Delay Slot ist möglicherweise jetzt auch nicht so effizient gewesen, sodass
bei den Intel Architekturen da nicht weiter verfolgt wird. So, gut, dann gehen wir mal
also in die Vorlesung jetzt rein und zwar rAussehen. Gut, also wo sind wir letzte Woche
angekommen? Cache Architekturen, das werden wir heute wahrscheinlich mal anfangen. Ja,
wir hatten uns also mit diesem Datenhessitzer auseinandergesetzt, insbesondere mit den Write
After Read und Write After Write Hesserts und haben diese Scoreboard Architektur da kennengelernt,
mit dem man die zumindest vermeiden kann. Also was heißt vermeiden? Indem man die Auswirkungen
solche Hesserts ausschließt. Also es können dadurch keine Fehler passieren. Noch besser
wäre es, wenn man diese Hesserts, die sind ja doch in gewisser Weise ausgemacht, diese
Write After Write und Write After Read Hesserts, das war nochmal die Scoreboard Architektur,
nochmal kurz zu wiederholen, da hatte ich also diese vier Phasen meiner Scoreboard Architektur.
Okay, das war es. So, Befehl holen und beim Befehl holen gucke ich schon erstmal nach,
ob es überhaupt noch einen Befehl gibt, der in der Pipeline drin ist, der ins gleiche
Register schreiben will, wie der, den ich gerade hole, dann lasse ich das weg. Damit vermeide
ich schon mal ein Write After Write Hessert mit der Holzhammer Methode und dann hier in
der ersten Stufe, da gucke ich nach, ob Read After Write Hesserts bestehen. Kann ja Read
After Write Hesserts bestehen, dann weise ich den einzelnen Ausführungseinheiten, solche
Fehler zu und dann können die starten, wenn alle Operanten da sind und dann beim Rückschreiben,
Presenters
Zugänglich über
Offener Zugang
Dauer
01:32:33 Min
Aufnahmedatum
2013-11-07
Hochgeladen am
2019-04-30 07:09:03
Sprache
de-DE
-
Organisationsaspekte von CISC und RISC-Prozessoren
-
Behandlung von Hazards in Pipelines
-
Fortgeschrittene Techniken der dynamischen Sprungvorhersage
-
Fortgeschritten Cachetechniken, Cache-Kohärenz
-
Ausnutzen von Cacheeffekten
-
Architekturen von Digitalen Signalprozessoren
-
Architekturen homogener und heterogener Multikern-Prozessoren (Intel Corei7, Nvidia GPUs, Cell BE)
-
Architektur von Parallelrechnern (Clusterrechner, Superrechner)
-
Effiziente Hardware-nahe Programmierung von Mulitkern-Prozessoren (OpenMP, SSE, CUDA, OpenCL)
-
Leistungsmodellierung und -analyse von Multikern-Prozessoren (Roofline-Modell)
- Patterson/Hennessy: Computer Organization und Design
-
Hennessy/Patterson: Computer Architecture - A Quantitative Approach
-
Stallings: Computer Organization and Architecture
-
Märtin: Rechnerarchitekturen